package mathematics.square;

/**
 * 计算方形的周长(Integer)
 *
 * @author 杜伟毅
 * @version 1.0
 * @since 2024/11/07
 */
public class PerimeterInteger implements Square<Integer> {
    /**
     * 计算正方形的周长
     *
     * @param side 边长
     * @return 对函数返回值的描述
     * @author 杜伟毅
     * @since 2024/11/8 0008 10:18
     */
    @Override
    public Integer perimeter(Integer side) {
        return side * 4;
    }

    /**
     * 计算长方形的周长
     *
     * @param side 长
     * @param wide 宽
     * @return 对函数返回值的描述
     * @author 杜伟毅
     * @since 2024/11/8 0008 10:23
     */
    @Override
    public Integer perimeter(Integer side, Integer wide) {
        return (side + wide) * 2;
    }

    /**
     * 计算正方形的边长
     *
     * @param perimeter 周长
     * @return 对函数返回值的描述
     * @author 杜伟毅
     * @since 2024/11/8 0008 10:51
     */
    @Override
    public Integer perimeterToSide(Integer perimeter) {
        return perimeter / 4;
    }

    /**
     * 根据周长计算长方形的长
     *
     * @param perimeter 周长
     * @param wide      宽
     * @return 对函数返回值的描述
     * @author 杜伟毅
     * @since 2024/11/8 0008 10:55
     */
    @Override
    public Integer perimeterToSide(Integer perimeter, Integer wide) {
        return perimeter / 2 - wide;
    }

    /**
     * 根据周长计算长方形的宽
     *
     * @param perimeter 周长
     * @param side      边长
     * @return 对函数返回值的描述
     * @author 杜伟毅
     * @since 2024/11/8 0008 10:58
     */
    @Override
    public Integer perimeterToWide(Integer perimeter, Integer side) {
        return perimeter / 2 - side;
    }
}
